function fn(arr: Array<number>) {
    console.log(arr);

}
fn([1, 8, 9])
// Ts定义一个求和函数;例Add(2,8,9,6,5,8,7),返回结果45
function Add(arrs: Array<number>) {
    let sum: number = 0
    arrs.forEach((item: number) => {
        sum += item
    })
    return sum
}
console.log(Add([2, 8, 9, 6, 5, 8, 7]));
// Ts定义一个函数返回值为boolean类型的判断函数;例isTrue(nudefined),返回false
const isTrue: () => boolean = () => false
console.log(isTrue());

// 使用函数编写，实现统计指定字符串中指定字符出现的次数，字符串和要统计的字母作为参数传递。str="acdkjcdeicl"  ;  strCount(str, “c”) 
// 思路：计数器： 遍历每一个字符。判断是否和val全等，如果全等，计数器加一。

let str="acdkjcdeicl"
function strCount(str: string, val: string) {
    console.log(str, val);
    let ccount: number = 0
    for (let i = 0; i < str.length; i++) {
        if (str[i]===val) {
          ccount++
        }
    }
     return ccount

}
console.log(strCount(str, "c"));

// ● 数字（乘5）添加：
// 将arrs中所有的数字乘以5 var arrs = [‘a’,’c’,6,’e’,5,3,’d’]，返回[30,25,15]
function fn1(arrs:Array<string|number>) {
    console.log(arrs);
    let newArrs:Array<number>=[]
    arrs.forEach((item)=>{
            if (typeof item==="number") {
                newArrs.push(item*5)
            }
    })
    return newArrs
    
}
console.log(fn1(['a','c',6,'e',5,3,'d']));

// ● 补零：
// 写一个函数，将这个数组中所有的一位数前面补0，输出一个新数组，即最后返回。
function fn2(arr2:Array<number>) {
    console.log(arr2);
    let newArr2:Array<number|string>=[]
   for (let i:number = 0; i < arr2.length; i++) {
       if (arr2[i]<10) {
        newArr2.push('0'+arr2[i])
       }else{
        newArr2.push(arr2[i])
       }
   }
   return newArr2
}
console.log(fn2([2,44,23,8,9,12]));
// ● 找真值：
// 写一个函数bouncer（），实现将数组中的真值，添加到一个新数组中。   
// 4. 常见的基础类型 null  undefinde symbol boolean void string number 

function bouncer(arr3:Array<number|null|string|undefined|boolean>) {
    console.log(arr3);
    let newArr3=[]
   for (let i = 0; i < arr3.length; i++) {
    if (arr3[i]) {
        newArr3.push(arr3[i])
    }
   }
   return newArr3

    
}
console.log(bouncer([1,null,"abc",undefined,true,9]));


